
package com.trial.area.trade.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.trial.area.common.dao.BaseDao;
import com.trial.area.trade.entity.ChargeRecordVO;
import com.trial.area.trade.param.ChargeRecordParam;

/**
 * 支付记录Dao实现类
 *
 * @author 朱国军
 * @version 2016年07月17日 朱国军
 */
@Repository("chargeRecordDao")
public class ChargeRecordDao extends BaseDao<ChargeRecordVO> {
    
    /**
     * 新增，注：返回的添加的条数，获取主键用entity.getId();
     *
     * @param entity 要增加的支付记录对象
     * @return 返回新增的条数
     */
    public Integer insert(ChargeRecordVO entity) {
        return this.getSqlSession().insert("insertChargeRecord", entity);
    }

    /**
     * 修改
     *
     * @param entity 要修改的支付记录对象
     * @return 返回修改的条数
     */
    public Integer update(ChargeRecordVO entity) {
        return this.getSqlSession().update("updateChargeRecordById", entity);
    }

    /**
     * 根据ID获取支付记录实体
     *
     * @param id 主键
     * @return 支付记录信息
     */
    public ChargeRecordVO findById(String id) {
        return this.getSqlSession().selectOne("selectChargeRecordById", id);
    }

    /**
     * 按查询条件【分页】查询
     *
     * @param param 支付记录查询条件
     * @return 支付记录列表
     */
    public List<ChargeRecordVO> queryByPage(ChargeRecordParam param) {
        return queryList("selectChargeRecordList", param);
    }

    /**
     * 根据ID删除支付记录
     *
     * @param id 主键
     */
    public Integer delete(String id) {
        return this.getSqlSession().delete("deleteChargeRecordById", id);
    }
    
    /**
     * 根据交易记录ID获取支付记录实体
     *
     * @param tradeId 交易记录ID
     * @return 支付记录信息
     */
    public ChargeRecordVO findByTradeId(String tradeId) {
        return this.getSqlSession().selectOne("selectChargeRecordByTradeId", tradeId);
    }
}
